সেশন ব্যবস্থাপনা

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) সেশন এবং কুকিজ (Session and Cookies) |
194
194

ASP.NET Core-এ সেশন ব্যবস্থাপনা ব্যবহারকারীর তথ্য সংরক্ষণ এবং ব্যবহারকারীর পরবর্তী রিকোয়েস্টগুলোর জন্য তা পুনরায় ব্যবহার করার একটি কার্যকরী পদ্ধতি। সেশন ব্যবস্থাপনা দ্বারা, আপনি ক্লায়েন্টের সেশনকে ট্র্যাক করতে পারেন, যা একটি নির্দিষ্ট সময়ের জন্য তথ্য সংরক্ষণ করে এবং ব্যবহারকারীর প্রতিটি রিকোয়েস্টে তথ্য অ্যাক্সেস করা সম্ভব হয়।


সেশন ব্যবস্থাপনার মূল ধারণা

সেশন হল একটি সার্ভার সাইড প্রযুক্তি যা ক্লায়েন্টের (ব্যবহারকারীর) তথ্য সংরক্ষণ করতে সাহায্য করে। ব্যবহারকারী সাইটে প্রবেশ করার সময় একটি সেশন আইডি তৈরি হয় এবং সেই আইডি ক্লায়েন্টের ব্রাউজারে কুকি (cookie) হিসেবে সংরক্ষিত থাকে। সেশন তথ্য সাধারণত সার্ভার সাইডে রাখা হয়, যা নিরাপদে তথ্য সংরক্ষণ করতে সহায়তা করে।

ASP.NET Core-এ সেশন ব্যবস্থাপনা সহজেই কনফিগার করা যায় এবং এটি ডেটা, শপিং কার্ট, ইউজার অথেনটিকেশন স্টেট এবং অন্যান্য সাময়িক তথ্য সংরক্ষণে ব্যবহৃত হয়।


সেশন ব্যবস্থাপনা কনফিগার করা

ASP.NET Core-এ সেশন ব্যবস্থাপনা শুরু করতে হলে প্রথমে সেশন সার্ভিসকে কনফিগার করতে হবে এবং তারপর সেশন ডেটা অ্যাক্সেস করতে হবে।

1. সেশন সার্ভিস কনফিগার করা

আপনার Startup.cs ফাইলে সেশন সার্ভিস কনফিগার করতে হবে।

public void ConfigureServices(IServiceCollection services)
{
    // সেশন ব্যবস্থাপনা কনফিগার করা
    services.AddDistributedMemoryCache();  // ইন-মেমরি ক্যাশ
    services.AddSession(options =>
    {
        options.IdleTimeout = TimeSpan.FromMinutes(30);  // সেশন টাইমআউট ৩০ মিনিট
        options.Cookie.HttpOnly = true;  // শুধুমাত্র HTTP রিকোয়েস্টের মাধ্যমে অ্যাক্সেসযোগ্য
        options.Cookie.IsEssential = true;  // কুকি প্রয়োজনীয়
    });

    services.AddControllersWithViews();
}
  • AddDistributedMemoryCache(): এটি ইন-মেমরি ক্যাশ তৈরি করে যা সেশন ডেটা সংরক্ষণ করবে।
  • AddSession(): সেশন ব্যবস্থাপনা সক্ষম করে এবং সেশন আইডি সম্পর্কিত কুকি কনফিগার করে।
  • IdleTimeout: এটি সেশনের সময়সীমা নির্ধারণ করে। ৩০ মিনিট পর সেশন শেষ হয়ে যাবে।

2. সেশন ব্যবহারে সেশন মদ্ধকরণ

এখন, Configure() মেথডে সেশন ব্যবস্থাপনাকে middleware হিসেবে অন্তর্ভুক্ত করতে হবে:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    // সেশন middleware যোগ করা
    app.UseSession();  

    app.UseRouting();

    app.UseAuthorization();

    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
}

app.UseSession() ব্যবহার করার মাধ্যমে সেশন ম্যানেজমেন্ট চালু হয়, যা রিকোয়েস্টে সেশন ডেটা সংরক্ষণ এবং অ্যাক্সেস করতে সাহায্য করে।


সেশনে ডেটা সংরক্ষণ ও অ্যাক্সেস করা

1. সেশন ডেটা সংরক্ষণ করা

কোনো ভিউ বা কন্ট্রোলার থেকে সেশনে ডেটা সংরক্ষণ করতে পারেন। সেশন ডেটা HttpContext.Session এর মাধ্যমে সংরক্ষণ এবং পুনরুদ্ধার করা যায়।

public class HomeController : Controller
{
    public IActionResult Index()
    {
        // সেশনে ডেটা সংরক্ষণ
        HttpContext.Session.SetString("UserName", "John Doe");

        return View();
    }
}

এখানে, SetString() মেথড ব্যবহার করে "UserName" কী দিয়ে একটি স্ট্রিং ডেটা সেশন-এ সংরক্ষণ করা হচ্ছে।

2. সেশন ডেটা পুনরুদ্ধার করা

আপনি সেশন থেকে ডেটা পুনরুদ্ধার করতে GetString() বা অন্যান্য টাইপ-স্পেসিফিক মেথড ব্যবহার করতে পারেন।

public class HomeController : Controller
{
    public IActionResult About()
    {
        // সেশন থেকে ডেটা পুনরুদ্ধার
        string userName = HttpContext.Session.GetString("UserName");

        if (userName != null)
        {
            ViewData["Message"] = $"Welcome, {userName}";
        }
        else
        {
            ViewData["Message"] = "Welcome, Guest";
        }

        return View();
    }
}

এখানে GetString() ব্যবহার করে "UserName" কী থেকে স্ট্রিং ডেটা পুনরুদ্ধার করা হচ্ছে।

3. অন্য ডেটা টাইপ সংরক্ষণ

ASP.NET Core-এ সেশন শুধুমাত্র স্ট্রিং ডেটা সংরক্ষণ করতে ব্যবহৃত হয় না, আপনি অন্যান্য ডেটা টাইপও সংরক্ষণ করতে পারেন যেমন অ-স্ট্রিং ভ্যালু বা কাস্টম অবজেক্ট।

এনকোডিং এবং ডিকোডিং এর মাধ্যমে সেশন ব্যবহার করা:

public IActionResult SaveData()
{
    var userData = new UserData { Id = 1, Name = "John" };

    // সেশন-এ কাস্টম অবজেক্ট সংরক্ষণ
    HttpContext.Session.SetString("UserData", JsonConvert.SerializeObject(userData));
    
    return View();
}

public IActionResult RetrieveData()
{
    var userDataJson = HttpContext.Session.GetString("UserData");

    if (userDataJson != null)
    {
        var userData = JsonConvert.DeserializeObject<UserData>(userDataJson);
        ViewData["UserName"] = userData.Name;
    }
    return View();
}

এখানে JsonConvert.SerializeObject এবং JsonConvert.DeserializeObject ব্যবহার করা হয়েছে JSON ফরম্যাটে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করার জন্য।


সেশন রিসেট বা শেষ করা

Clear() মেথড ব্যবহার করে আপনি সেশনের সব ডেটা রিসেট করতে পারেন। অথবা Remove() মেথড ব্যবহার করে একটি নির্দিষ্ট কী মুছে ফেলতে পারেন।

public IActionResult Logout()
{
    // সেশন ডেটা মুছে ফেলতে
    HttpContext.Session.Clear();  // সব সেশন ডেটা রিসেট

    // নির্দিষ্ট সেশন কী মুছে ফেলতে
    HttpContext.Session.Remove("UserName");

    return RedirectToAction("Index");
}

সারাংশ

ASP.NET Core-এ সেশন ব্যবস্থাপনা ব্যবহারকারী ডেটা সংরক্ষণ এবং অ্যাক্সেসের একটি গুরুত্বপূর্ণ উপায়। সেশন ব্যবস্থাপনা কনফিগার করার পর আপনি সহজেই সেশন ডেটা সংরক্ষণ, পুনরুদ্ধার এবং মুছে ফেলতে পারেন। এটি শপিং কার্ট, ইউজার অথেনটিকেশন এবং সাময়িক ডেটা সংরক্ষণের জন্য অত্যন্ত কার্যকরী।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion